package com.spring.Test;

import java.lang.reflect.Method;

public class ReFlect {


    public static void main(String[] args) {

        /* 反射*/
        try {

            Person person = new Person();

            Class aClass1 = person.getClass();
            System.out.println(aClass1);
            System.out.println( aClass1.getName());


            Class aClass = Class.forName("com.spring.Test.Person");
            System.out.println(aClass);

            System.out.println(ReFlect.class);


//
//            /*获取文件的全限定名*/
//            Class a = Class.forName("com.spring.Test.Person");
//            /* 获取字节码文件里的方法*/
//
//            System.out.println(  a.getMethod("cat"));
//            System.out.println(  a.getMethods());
//            System.out.println(  a.getName());
//            System.out.println( a.getModifiers());
////            a.getReturnType();
//
//            /*实例化当前字节码中的类 new Person*/
//            Object o = a.newInstance();
//
//            /* getMethod*/
//            System.out.println(o);
////            Class aClass = o.getClass();
////            System.out.println(aClass);
//
//            //执行class 加载器
//            ClassLoader classLoader = o.getClass().getClassLoader();
//            System.out.println(classLoader);
//
//            Method cat = a.getMethod("cat");
//            System.out.println(cat);
//
//            cat.invoke(o);
//



        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
